<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/3/27
 * Time: 20:16
 */
//此处简单的实现一个自动加载
spl_autoload_register(function($class){
    include_once ("./".$class.".class.php");
});
//文档网址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319

//1.将timestamp,nonce,token按字典序排序 (参数名ASCII码从小到大排序（字典序）)
    $timestamp = @$_GET['timestamp'];
    $nonce = @$_GET['nonce'];
    $token= "fps2";
    $signature = @$_GET['signature'];

    $arr = array($timestamp,$nonce,$token);
    sort($arr);

//2.将排序后的三个参数拼接后用sha1加密
    $tmpstr = implode('',$arr);
    $tmpstr = sha1($tmpstr);
//3.将加密后的字符串与signature进行对比，判断该请求是否来自微信

    if($tmpstr == $signature && isset($_GET['echostr']))
    {//微信服务器配置 第一次接入会验证合法性，之后接收事件的区别是少传 $_GET['echostr'] 这个参数
        echo $_GET['echostr'];
        exit;
    }
    else
    {//这里可以接收微信服务器传递的事件

        $appID = "wx94010b1eb2f5362d";
        $appsecret = "51ac1f02b2cc1c5a643c85f908acb680";
//
//        $wxSdk = new WinxinSdk($appID,$appsecret);
//        $wxSdk->getToken();
//        echo $wxSdk->reposeMsg();







//        $postArr = $GLOBALS['HTTP_RAW_POST_DATA'];
//        //获取到xml数据后，处理消息类型，并设置回复消息内容(回复就是直接打印xml数据)
//        //数据格式
//        $arr = simplexml_load_string($postArr);
//        if(strtolower($arr->MsgType)=='event')
//        {
//            $toUser = $arr->ToUserName;
//            $foUser = $arr->FromUserName;
//            $msgType = 'text';
//            $createTime = time();
//            $content = '关注5251';
//
//            if(strtolower($arr->Event)=="subscribe")
//            {//订阅
//                $temp = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content></xml>";
//                $temp = sprintf($temp,$foUser,$toUser,$createTime,$msgType,$content);
//                echo $temp;
//            }
//
//        }
//        if(strtolower($arr->MsgType)=='text')
//        {
//            $toUser = $arr->ToUserName;
//            $foUser = $arr->FromUserName;
//            $msgType = 'text';
//            $createTime = time();
//            $content = $arr->Content."888888".$toUser."\n";
//
//            $temp = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content></xml>";
//            $temp = sprintf($temp,$foUser,$toUser,$createTime,$msgType,$content);
//            echo $temp;
//
//
//
//        }




        $wxSdk = new WinxinSdk($appID,$appsecret);
        $wxSdk->getToken();

        //echo WinxinSdk::$access_token;
        //下面只是测试，其实订阅和发文字消息不可能同时触发，下面的两条同一时间只会触发一个（但是还是不建议这样写，最好判断分开）
        echo $wxSdk->reposeMsg();//订阅回复的内容
        echo $wxSdk->textMsg();//发消息回复的内容
        echo $wxSdk->onclickMenu();//点击自定义菜单市出发内容








    }


